package com.merono.g;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
public class ChooseBoardDialogFragment extends DialogFragment {
private EditText mEditText;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mEditText = new EditText(getActivity());
mEditText.setId(1); // set id so that it maintains its state
mEditText.setSingleLine();
mEditText
.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
switchBoard(mEditText.getText().toString());
ChooseBoardDialogFragment.this.dismiss();
}
return false;
}
});
return new AlertDialog.Builder(getActivity())
.setTitle(getString(R.string.choose_board))
.setView(mEditText)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int button) {
switchBoard(mEditText.getText().toString());
}
}).create();
}
@Override
public void onStart() {
super.onStart();
// make keyboard appear when dialog appears (only works in portrait)
mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
Window window = getDialog().getWindow();
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
}
private void switchBoard(String boardName) {
((BoardActivity) getActivity()).switchBoard(boardName);
}
}